package com.kb.util;

import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import org.slf4j.LoggerFactory;

import java.util.concurrent.TimeUnit;


/**
 * @Auther:chenzx
 * @Date:2023/9/27
 * @Description:guava缓存
 */
public class GuavaCacheUtil {
    private static final org.slf4j.Logger log = LoggerFactory.getLogger(GuavaCacheUtil.class);
    // 使用 Guava Cache 缓存令牌，设置过期时间为 20 分钟
    private static Cache<String, String> tokenCache = CacheBuilder.newBuilder()
            .expireAfterWrite(20, TimeUnit.MINUTES)
            .build();

    // 保存令牌到缓存中
    public static void saveToken(String userId, String token) {
        tokenCache.put(userId, token);
    }

    // 获取缓存中的令牌
    public static String getToken(String userId) {
        return tokenCache.getIfPresent(userId);
    }

    // 删除缓存中的令牌
    public static void deleteToken(String userId) {
        tokenCache.invalidate(userId);
    }
}
